package pe.com.bbva.modpre.dominio;

import java.math.BigDecimal;

import javax.persistence.*;
import javax.validation.constraints.NotNull;

import pe.com.bbva.modpre.dominio.util.AuditoriaBean;
import pe.com.bbva.modpre.utileria.Constante;


/**
 * The persistent class for the SOL_DEUDA database table.
 * 
 */
@Entity
@Table(name="CFG_RAR")
@SuppressWarnings("serial")
public class Rar extends AuditoriaBean {

	@Id
	@Column(unique=true, nullable=false, precision=16)
	@GeneratedValue(strategy = GenerationType.TABLE, generator = "SEQ_RAR")
	@TableGenerator(name = "SEQ_RAR", table = "SEQ_ENTIDAD", pkColumnName = "ENTIDAD", initialValue = 1,
	valueColumnName = "ULTIMO_ID", pkColumnValue = "pe.com.bbva.modpre.dominio.Rar", allocationSize = 1)
	private Long id;
	
	@Column(name="CODIGO_RAR", precision=16)
	private Long codigoRar;
	
	@Column(name="CODIGO_MONEDA", precision=16)
	private Long codigoMoneda;
	
	@Column(name="CODIGO_GRUPO_PRODUCTO", precision=16)
	private Long codigoGrupoProducto;

	@Column(name="CODIGO_MONTO", precision=16)
	private Long codigoMonto;
	
	@Column(name="VALOR_CLIENTE", precision=16)
	private BigDecimal valorCliente;
	
	@Column(name="SCORE_VINCULADO", precision=16)
	private BigDecimal scoreVinculado;
	
	@Column(name="CODIGO_PLAZO", precision=16)
	private Long codigoPlazo;
	
	@Column(name="RAROC_PROPUESTO", precision=16, scale=6)
	private BigDecimal rarocPropuesto;
	
	@Column(name="RAR", precision=16, scale=6)
	private BigDecimal rar;
	
	@Column(name="TASA_MINIMA", precision=16, scale=6)
	private BigDecimal tasaMinima;
	
	@Column(name="TASA_MAXIMA", precision=16, scale=6)
	private BigDecimal tasaMaxima;
	
	@Column(name="TASA_MINIMA_DELEGADA", precision=16, scale=6)
	private BigDecimal tasaMinimaDelegada;
	
	@Column(name="PUNTO_OPTIMO", precision=16, scale=2)
	private BigDecimal puntoOptimo;
	
	@Column(name="CUARTIL_1", precision=16, scale=2)
	private BigDecimal cuartil1;
	
	@Column(name="CUARTIL_2", precision=16, scale=2)
	private BigDecimal cuartil2;
	
	@Column(name="CUARTIL_3", precision=16, scale=2)
	private BigDecimal cuartil3;
	
	@ManyToOne
	@JoinColumn(name="TIPO_CARGA")
	@NotNull(message=Constante.CODIGO_MENSAJE.VALIDAR_COMBOBOX)
	private Valor tipoCarga;
	
	
	
	
	//uni-directional many-to-one association to Valor
	@ManyToOne
	@JoinColumn(name="ESTADO")
	@NotNull(message=Constante.CODIGO_MENSAJE.VALIDAR_COMBOBOX)
	private Valor estado;
	

	@Transient
	private BigDecimal coeficienteAux;

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public Long getCodigoRar() {
		return codigoRar;
	}

	public void setCodigoRar(Long codigoRar) {
		this.codigoRar = codigoRar;
	}

	public Long getCodigoMoneda() {
		return codigoMoneda;
	}

	public void setCodigoMoneda(Long codigoMoneda) {
		this.codigoMoneda = codigoMoneda;
	}

	public Long getCodigoGrupoProducto() {
		return codigoGrupoProducto;
	}

	public void setCodigoGrupoProducto(Long codigoGrupoProducto) {
		this.codigoGrupoProducto = codigoGrupoProducto;
	}

	public Long getCodigoMonto() {
		return codigoMonto;
	}

	public void setCodigoMonto(Long codigoMonto) {
		this.codigoMonto = codigoMonto;
	}

	public BigDecimal getValorCliente() {
		return valorCliente;
	}

	public void setValorCliente(BigDecimal valorCliente) {
		this.valorCliente = valorCliente;
	}

	public BigDecimal getScoreVinculado() {
		return scoreVinculado;
	}

	public void setScoreVinculado(BigDecimal scoreVinculado) {
		this.scoreVinculado = scoreVinculado;
	}

	public Long getCodigoPlazo() {
		return codigoPlazo;
	}

	public void setCodigoPlazo(Long codigoPlazo) {
		this.codigoPlazo = codigoPlazo;
	}

	public BigDecimal getRarocPropuesto() {
		return rarocPropuesto;
	}

	public void setRarocPropuesto(BigDecimal rarocPropuesto) {
		this.rarocPropuesto = rarocPropuesto;
	}

	public BigDecimal getRar() {
		return rar;
	}

	public void setRar(BigDecimal rar) {
		this.rar = rar;
	}

	public BigDecimal getTasaMinima() {
		return tasaMinima;
	}

	public void setTasaMinima(BigDecimal tasaMinima) {
		this.tasaMinima = tasaMinima;
	}

	public BigDecimal getTasaMaxima() {
		return tasaMaxima;
	}

	public void setTasaMaxima(BigDecimal tasaMaxima) {
		this.tasaMaxima = tasaMaxima;
	}

	public BigDecimal getTasaMinimaDelegada() {
		return tasaMinimaDelegada;
	}

	public void setTasaMinimaDelegada(BigDecimal tasaMinimaDelegada) {
		this.tasaMinimaDelegada = tasaMinimaDelegada;
	}

	public BigDecimal getPuntoOptimo() {
		return puntoOptimo;
	}

	public void setPuntoOptimo(BigDecimal puntoOptimo) {
		this.puntoOptimo = puntoOptimo;
	}

	public BigDecimal getCuartil1() {
		return cuartil1;
	}

	public void setCuartil1(BigDecimal cuartil1) {
		this.cuartil1 = cuartil1;
	}

	public BigDecimal getCuartil2() {
		return cuartil2;
	}

	public void setCuartil2(BigDecimal cuartil2) {
		this.cuartil2 = cuartil2;
	}

	public BigDecimal getCuartil3() {
		return cuartil3;
	}

	public void setCuartil3(BigDecimal cuartil3) {
		this.cuartil3 = cuartil3;
	}

	public Valor getTipoCarga() {
		return tipoCarga;
	}

	public void setTipoCarga(Valor tipoCarga) {
		this.tipoCarga = tipoCarga;
	}

	public Valor getEstado() {
		return estado;
	}

	public void setEstado(Valor estado) {
		this.estado = estado;
	}

	public BigDecimal getCoeficienteAux() {
		return coeficienteAux;
	}

	public void setCoeficienteAux(BigDecimal coeficienteAux) {
		this.coeficienteAux = coeficienteAux;
	}

}